package com.itlong.cloud.operate.service;

import com.itlong.cloud.POJO.DTO.operate.OperateFaceApplyInfoDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateFaceApplyInfoGetPageDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateUiInfoPageDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateUserFaceInfoPageDTO;
import com.itlong.cloud.POJO.VO.operate.OperateFaceApplyInfoVO;
import com.itlong.cloud.POJO.VO.operate.OperateUserFaceInfoVO;
import com.itlong.cloud.utils.page.Page;

import java.util.Map;

/**
 * <desc>
 *      运营-项目-人脸应用服务接口。
 * <desc/>
 *
 * @createDate 2018-05-03.
 */
public interface IOperateFaceApplyService {

    /**
     * <desc>
     *      保存人脸应用信息。
     * <desc/>
     *
     * @param  saveDTO 人脸应用信息对象
     * @return
     * @author shengen.T
     * @createDate 2018-05-03
     */
    Map<String,Object> saveFaceApplyInfo(OperateFaceApplyInfoDTO saveDTO) throws Exception;


    /**
     * <desc>
     *      更新人脸应用信息。
     * <desc/>
     *
     * @param  applyName 应用名称
     * @param  appId 应用编号
     * @param  remark  备注
     * @return
     * @author shengen.T
     * @createDate 2018-05-04
     */
    Integer updateFaceApplyInfo(String applyName, String remark,String appId,Integer id) throws Exception;

    /**
     * <desc>
     *      检测appid是否跟项目绑定了。
     * <desc/>
     *
     * @param appId
     * @return
     * @author shengen.T
     * @createDate 2018-05-04
     */
    Integer checkAppIdIsUse(String appId) throws Exception;

    /**
     * <desc>
     *      删除人脸应用信息。
     * <desc/>
     *
     * @param  appId 编号
     * @return
     * @author shengen.T
     * @createDate 2018-05-04
     */
    Integer deleteFaceApplyInfo(String appId,Integer id) throws Exception;

    /**
     * <desc>
     *      获取单个应用信息。
     * <desc/>
     *
     * @param  appId
     * @return
     * @author shengen.T
     * @createDate 2018-05-04
     */
    OperateFaceApplyInfoVO getOneInfo(String appId,Integer id) throws Exception;


    /**
     * <desc>
     *      分页获取人脸分页数据。
     * <desc/>
     *
     * @param  pageDTO 分页查询数据
     * @return
     * @author shengen.T
     * @createDate 2018-05-07
     */
    Page<OperateFaceApplyInfoVO> getPageInfo(OperateFaceApplyInfoGetPageDTO pageDTO) throws Exception;


    /**
     * <desc>
     *      分页获取人脸库信息。
     * <desc/>
     *
     * @param  pageDTO 人脸用户查询对象
     * @return
     * @author shengen.T
     * @createDate 2018-05-07
     */
    Page<OperateUserFaceInfoVO> getFacePage(OperateUserFaceInfoPageDTO pageDTO) throws Exception;

    /**
     * <desc>
     *      获取指定项目人脸库信息(人脸认证权限)。
     * <desc/>
     *
     * @param  projectId 项目编号
     * @return
     * @author Qiang.S
     * @createDate 2018-05-22
     */
    OperateFaceApplyInfoVO getFaceByProjectId(String projectId) throws Exception;

    /**
     * <desc>
     *      获取指定项目人脸库信息(云电梯)。
     * <desc/>
     *
     * @param  projectId 项目编号
     * @return
     * @author Qiang.S
     * @createDate 2018-06-08
     */
    OperateFaceApplyInfoVO getElevatorFaceByProjectId(String projectId) throws Exception;



}
